package com.shujia.scala

object Demo33Class {
  def main(args: Array[String]): Unit = {
    /**
      * 反射
      * 类对象： class文件在jvm这种的存在形式
      *
      * 类对象的作用
      * 1、可以通过类对象获取类的构造函数--- 可以通过这个构造函数创建类的对象（反射）
      * 2、可以通过类对象获取类的方法，属性，注解
      */


    //获取类对象
    //1、通过Class获取
    val stuClass: Class[_] = Class.forName("com.shujia.scala.Demo34Student")


    //2、通过类名获取
    val stuClass2: Class[Demo34Student] = classOf[Demo34Student]

    //3、通过类的对象获取类对象
    val student = new Demo34Student("001")

    val stuClass3: Class[_ <: Class[_]] = stuClass.getClass


  }

}
